<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>p2_CSS选择器</title>

    <style>
        /* 标签名选择器 */
        h4 {
            color: red;
        }

        div {
            width: 100px;
            height: 100px;
            background-color: yellow;
        }

        /* id选择器 */
        #d2 {
            border: 5px solid black;
        }

        /* 类选择器 */
        .error {
            background-color: red;
        }

        .success {
            background-color: green;
        }

        .msg {
            color: white;
        }

        /* 伪类选择器 */
        /* :hover 选中元素悬停时的状态 */
        /* 紧挨着写是与的关系，必须满足所有条件才能生效 */
        #d2:hover {
            background-color: blue;
        }

        /* 群组选择器，逗号隔开，是是或者的关系，只能满足其中一个即可 */
        #d2, h4, .error {
            text-decoration: underline; /* 文本修饰线:下划线 */
        }

        /* 通配选择器：选中所有元素 */
        * {
            font-style: italic; /* 文字样式:斜体 */
        }

        /* 属性选择器 */
        input[type="text"] {
            background-color: yellow;
        }

        a:link { /* 超链接未被访问过的状态 */
            color: gray;
        }

        a:visited { /* 超链接已被访问过的状态 */
            color: green;
        }

        a:hover { /* 超链接的悬停状态 */
            color: orange;
        }

        a:active { /* 超链接的激活状态 */
            color: red;
        }

        /* 后代选择器 */
        div span {
            color: cyan;
        }

        /* 子代选择器 */
        #d1 > div > span {
            color: red;
        }
    </style>

</head>
<body>
<div id="d1">
    <span>1</span>
    <div>
        <span>2</span>
        <p>测试文字</p>
        <p>我是<span>测试</span>段落</p>
    </div>
    <span>3</span>
</div>

<hr>

<a href="https://baidu.com">超链接1</a>
<a href="abc">超链接2</a>

<hr>

<h4>我是标题</h4>
<p>我是段落</p>
<a href="#">我是超链接</a>
<h4 id="d2">我是标题2</h4>
<div>我是div1</div>
<div>我是div2</div>
<div>我是div3</div>

<hr>

<span class="error msg">用户名已被占用</span>
<span class="error msg">密码长度不正确</span>
<span class="error msg">手机号格式不正确</span>
<br>
<span class="success msg">用户名已可以使用</span>
<span class="success msg">密码为合法密码</span>
<span class="success msg">手机号未被注册</span>

<hr>

<input type="text">
<input type="password">

</body>
</html>